package com.chenju.invokechainservice.service;

import com.chenju.invokechainservice.adapter.SpringBeanClassAdapter;
import com.chenju.invokechainservice.domain.TAopMethod;

import java.io.File;
import java.util.List;
import java.util.Map;

public interface TAopService {
    void saveAopMethod(TAopMethod aopMethod);

    TAopMethod findAopMethodByMethodName(String methodName);

    String findAopMethodExpressionByPointcutMethodName(String pointcutMethodName);

    List<TAopMethod> findAll();

    void updateAdviceForMethods(TAopMethod aopMethod);

    Map<String, File> findSpringBeanClassMap(String codePath);

    String parseSingleFileBeanClass(SpringBeanClassAdapter sbca);

    void parseSingleFileAdvice(SpringBeanClassAdapter sbca);

    List<String> parsePointcutExpression(String pointcutExpression, Class<?> targetClass);

    void parseProjectPointcut(String codePath);

}
